{{ $url := .Destination }}
{{- if (strings.HasPrefix $url "http") -}}
  {{/* external link, add icon */}}
  <a
    class="link"
    href="{{ $url | safeURL }}"
    target="_blank"
    rel="noopener">
      {{- .Text | safeHTML -}}
      <span class="pl-1 icon-svg icon-sm">
        {{- partialCached "icon" "open_in_new" "open_in_new" -}}
      </span></a>
{{- else if (strings.HasPrefix $url "/") -}}
  {{ if (strings.HasSuffix (urls.Parse $url).Path ".md") }}
    {{/* abs path to markdown file, use ref */}}
    {{ $url = (ref .Page $url) }}
  {{ end }}
  <a class="link" href="{{ $url }}">{{ .Text | safeHTML }}</a>
{{- else -}}
  {{/* check if the file links to index.md */}}
  {{- if (strings.FindRE `([^_]|^)index.md` $url 1) -}}
    <a
      class="link"
      href="{{ ref .Page (strings.Replace $url "index.md" "_index.md") }}"
      >{{ .Text | safeHTML }}</a
    >
  {{- else -}}
    {{/* relative link, use ref */}}
    <a class="link" href="{{ ref .Page $url }}"
      >{{ .Text | safeHTML }}</a
    >
  {{- end -}}
{{- end -}}
